table of contents
GETHOSTBYNAME(3) | Linux - příručka programátora | GETHOSTBYNAME(3) |
JMÉNO¶
gethostbyname, gethostbyaddr, sethostent, endhostent, herror - získej záznam z databáze počítačů
SYNTAXE¶
#include <netdb.h> extern int h_errno; struct hostent *gethostbyname(const char *name); struct hostent *gethostbyaddr(const char *addr, int len, int type); void sethostent(int stayopen); void endhostent(void); void herror(const char *s);
POPIS¶
Funkce gethostbyname() vrací strukturu typu hostent pro zadaný počítač name. Doména počítače a jí nadřazené jsou prohledávány pouze tehdy, nekončí-li name tečkou. Pokud name nekončí tečkou a proměnná prostředí HOSTALIASES je nastavena, bude prvně prohledáván soubor, na který ukazuje proměnná HOSTALIASES.
Funkce gethostbyaddr() vrací strukturu typu hostent pro počítač, jehož adresa addr (délky len a typu type) byla zadána. Jediným platný typem adresy je nyní AF_INET.
Funkce sethostent() specifikuje, je-li stayopen pravdivé (1), že k dotazování budou použity spojené TCP sokety a spojení zůstane mezi jednotlivými dotazy otevřeno. Jinak budou k dotazování použity UDP datagramy.
Funkce endhostent() ukončí TCP spojení pro dotazy na nameserver.
Funkce herror() vytiskne chybovou zprávu, která přísluší hodnotě proměnné h_errno.
Funkce gethostbyname() a gethostbyaddr() používají při své činnosti jak nameservery named(8), tak soubor /etc/hosts, ale samozřejmě i NIS nebo YP, to záleží na pořadí definovaném v /etc/host.conf. (Viz resolv+(8)). Standardně je prvně dotazován named(8) a potom soubor /etc/hosts.
Struktura hostent je definována v <netdb.h> následovně:
struct hostent { char *h_name; /* official name of host */ char **h_aliases; /* alias list */ int h_addrtype; /* host address type */ int h_length; /* length of address */ char **h_addr_list; /* list of addresses */ } #define h_addr h_addr_list[0] /* for backward compatibility */
Prvky struktury hostent jsou:
- h_name
- Oficiální jméno počítače.
- h_aliases
- Nulou ukončené pole alternativních jmen počítačů.
- h_addrtype
- Typ adres, v současné době vždy AF_INET.
- h_length
- Délka adresy v bajtech.
- h_addr_list
- Nulou ukončené pole síťových adres počítače v síťovém pořadí dat.
- h_addr
- První adresa v h_addr_list kvůli zpětné kompatibilitě.
NÁVRATOVÁ HODNOTA¶
Funkce gethostbyname() a gethostbyaddr() vrací strukturu hostent nebo ukazatel NULL v případě výskytu chyby. Potom je nastavena proměnná h_errno.
CHYBY¶
Proměnná h_errno může obsahovat následující hodnoty:
- HOST_NOT_FOUND
- Specifikovaný počítač je neznámý.
- NO_ADDRESS
- Jméno je platné, ale nemá žádnou IP adresu.
- NO_RECOVERY
- Došlo k výskytu neodstranitelné chyby nameserveru.
- TRY_AGAIN
- Došlo k dočasné chybě autoritativního nameserveru. Zkuste později.
SOUBORY¶
- /etc/host.conf
- konfigurační soubor resolveru.
- /etc/hosts
- databáze počítačů.
SPLŇUJE STANDARDY¶
BSD 4.3
DALŠÍ INFORMACE¶
resolver(3), hosts(5), hostname(7), resolv+ (8), named(8)
VAROVÁNͶ
Překlad je pravděpodobně zastaralý. Pokud chcete pomoci s jeho aktualizací, zamiřte na http://man-pages-cs-wiki.homelinux.net/
30. března 1997 | BSD |